4: put the seconds + 300 into TimeOut -- 5分間をタイムリミットとする場合
5: ...
6: end openStack
-- idleメッセージを監視する。バックグラウンドに置く。
7: on idle
8: global TimeOut
9: if the seconds > TimeOut then
10: go stack "HyperLauncher" -- pop cdなどでもよい。スタックを強制的に閉じる。
11: else
12: pass idle
13: end if
14: end idle
--
リスト2
1: on idle
2: global lastCheckTime
3: if the time is NOT lastCheckTime then
4: put the time into lastCheckTime
5: convert the time to dateItems --この場合は結果が変数itに納められる
6: if item 7 of it is 2 AND item 4 of it is 13 AND item 5 of it is 0 then
7: if there is NOT a file <報告書のファイル名>
8: then answer "報告書が提出されていません!"
9: end if
10: end if
11: ...
12: pass idle -- _pass_ の解説参照
13: end idle
--
リスト3
-- fld "LastCommand"は「 _テキストを共有_ 」に設定しておく
1: on idle
2: global nextAccess
3: if the seconds < nextAccess then pass idle
4: put the seconds + 60 into nextAccess
5: get FileInfo(<command file>)
6: if item 4 of it > fld "LastCommand" then
7: put item 4 of it into fld "LastCommand"
8: do ReadFile(<command file>)
9: end if
10: ...
11: pass idle
12: end idle
--
リスト4
-- fld "LastMessage"は「テキストを共有」に設定しておく
1: on idle
2: global nextAccess
3: if the seconds < nextAccess then pass idle
4: put the seconds + 60 into nextAccess
5: get FileInfo(<message file>)
6: if item 4 of it > fld "LastMessage" then
7: put item 4 of it into fld "LastMessage"
8: go cd "MessageBoard"
9: put ReadFile(<message file>) into fld "MessageText"
10: open long name of HyperCard
11: end if
12: ...
13: pass idle
14: end idle
--
convert
本文でも説明したとおり、時刻の表現形式を変換する命令。変換できるフォーマットはdateItemsのほかにseconds, short date, long date, short timeなどがあり、場合によって使い分けることができる。特に、時刻の比較をするとき、ハイパーカードでは文字列形式(the date, the timeなど)のまま前後を比べることはできないが、いったんsecondsフォーマットにするとこれが可能になり、大変便利である。今回の遠隔操作でも、ファイルの更新時刻をseconds形式で取得することで、ファイルが新しいかどうかの比較を行っている。